/* 
 * File:   JRepository.h
 * Author: johnneyshi
 *
 * Created on 2013年1月6日, 上午8:57
 */

#ifndef JREPOSITORY_H
#define	JREPOSITORY_H
#include "JErrorInfo.h"
#include "JUpdateConflict.h"
#include "JWorkingCopiesFile.h"
#include "JWorkingCopiesDir.h"
#include "JWorkingCopiesBaseFile.h"
#include "JRepositoryFile.h"
#include <string>
#include <list>

class JRepository {
public:
    JRepository();
    JRepository(const JRepository& orig);
    virtual ~JRepository();
    JErrorInfo OpenUpdate();
    JUpdateConflict Update(JWorkingCopiesDir _dir);
    JUpdateConflict Update(JWorkingCopiesFile _file);
    JErrorInfo CloseUpdate();
    
private:
    static int isUpdateOpen;
    int currentVersion;
    std::string rootPath;
    void SaveRepositoryFile(JWorkingCopiesBaseFile _file,JRepositoryFile& _repoFile);
    std::list<JRepositoryFile> listRepoFile; 
};

#endif	/* JREPOSITORY_H */

